Modern computers achieve increased performance through the use of multiple processor dies and, in some cases, multiple processor cores on a single die. In order to take advantage of these improved hardware arrangements, software is created to run multiple threads simultaneously on a single processor core.